package com.itlong.cloud.POJO.DTO.operate;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * <desc>
 * 银联转换实体类对象.
 * </desc>
 *
 * @createDate 2018/9/1
 */
@Data
@NoArgsConstructor
public class ChinaPayTransactionBeanDTO {

    private String MerId;       //商户号，数字，定长15位
    private String MerDate;     //商户日期yyyyMMdd,数字，定长8位
    private String MerSeqId;    //流水号，数字，变长16位
    private String CardNo;      //收款账号，数字，变长25位
    private String UserName;    //收款人姓名，字符，变长20位
    private String OpenBank;    //开户银行名称，字符，变长50位
    private String Prov;        //省份，字符，变长20位
    private String City;        //城市，字符，变长40位
    private String TransAmt;    //金额（单位分），数字，变长12位
    private String Purpose;     //用途，字符，变长25位
    private String Flag;        //付款标志，字符，定长2位
    private String Version;     //版本号，字符，变长8位
    private String signFlag;    //签名标志
    private String termType;    //表示商户代付业务使用场景，（业务参数） 07：互联网 08：移动端
    private String payMode;     //交易模式 0：被动发起代付 1：主动发起代付
    private String ChkValue;    //交易签名，字符，定长256位
    //应答数据
    private String ResponseCode; //应答码
    private String CpDate;       //Cp接收到交易的日期，定长8位
    private String CpSeqId;      //Cp流水，定长6位
    private String Stat;         //交易状态码，定长1位
    private String FeeAmt;       //手续费（单位分），变长12位
    private String BackDate;     //退单日期，定长8位

    //返回报文数据
    private String Data;         //控台返回报文


    public String toString() {
        return new StringBuffer(MerId).append(MerDate)
                .append(MerSeqId).append(CardNo)
                .append(UserName).append(OpenBank)
                .append(Prov).append(City)
                .append(TransAmt).append(Purpose)
                .append(Flag)
                .append(Version).append(termType).append(payMode).toString();
    }

    public String transString() {
        return new StringBuffer("merId=").append(MerId).append(" & merDate=").append(MerDate)
                .append(" & merSeqId=").append(MerSeqId).append(" & cardNo=").append(CardNo)
                .append(" & usrName=").append(UserName).append(" & openBank=").append(OpenBank)
                .append(" & prov=").append(Prov).append(" & city=").append(City)
                .append(" & transAmt=").append(TransAmt).append(" & purpose=").append(Purpose)
                .append(" & flag=").append(Flag)
                .append(" & version=").append(Version).append(termType).toString();
    }
}